ASP.NET Core-এ Routing হলো একটি প্রক্রিয়া যা ইনকামিং HTTP রিকোয়েস্টকে সঠিক Controller এবং Action Method-এর সাথে ম্যাপ করে। এটি ASP.NET Core অ্যাপ্লিকেশনের অন্যতম গুরুত্বপূর্ণ অংশ, কারণ এটি ঠিক করে দেয় যে ব্যবহারকারীর রিকোয়েস্টের উপর ভিত্তি করে অ্যাপ্লিকেশন কীভাবে সাড়া দেবে।
Controller এবং Action Method হলো MVC (Model-View-Controller) আর্কিটেকচারের মৌলিক অংশ, যা অ্যাপ্লিকেশনের লজিক এবং ডেটা প্রসেসিং পরিচালনা করে।
Routing ASP.NET Core-এ ইনকামিং URL-এর ভিত্তিতে সঠিক Controller এবং Action Method নির্বাচন করার জন্য ব্যবহৃত হয়। এটি Middleware Pipeline-এর অংশ এবং Startup.cs
-এ কনফিগার করা হয়। Routing দুটি প্রধান পদ্ধতিতে কাজ করে:
Convention-based Routing হলো একটি রুল-ভিত্তিক পদ্ধতি যেখানে Routing প্যাটার্নগুলো নির্দিষ্টভাবে Startup.cs
-এর মধ্যে সংজ্ঞায়িত করা হয়।
Startup.cs
ফাইলে নিচের কোডটি দেখুন:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
{controller=Home}/{action=Index}/{id?}
{controller=Home}
: ডিফল্ট Controller হলো Home
।{action=Index}
: ডিফল্ট Action Method হলো Index
।{id?}
: id
একটি অপশনাল প্যারামিটার।যদি ব্যবহারকারী /Products/Details/5
URL প্রদান করেন:
Products
Details
5
Attribute Routing হলো একটি পদ্ধতি যেখানে Routing নিয়মগুলো সরাসরি Controller এবং Action Method-এর উপরে সংজ্ঞায়িত করা হয়। এটি সাধারণত বেশি স্পষ্ট এবং সহজতর হয়।
[Route("products")]
public class ProductsController : Controller
{
[Route("details/{id}")]
public IActionResult Details(int id)
{
// প্রোডাক্টের ডিটেইলস রিটার্ন করুন
return View();
}
}
/products
/products/details/{id}
যদি ব্যবহারকারী /products/details/10
URL প্রদান করেন:
ProductsController
Details
10
Controller হলো ASP.NET Core-এ একটি ক্লাস, যা ব্যবহারকারীর রিকোয়েস্ট প্রসেস করে এবং উপযুক্ত রেসপন্স প্রদান করে। এটি সাধারণত Controller
ক্লাস থেকে ইনহেরিট করে।
Action Method হলো Controller-এর একটি মেথড, যা নির্দিষ্ট রিকোয়েস্টের জন্য লজিক প্রসেস করে। Action Method সাধারণত IActionResult
বা অন্য কোনো ভ্যালু রিটার্ন করে।
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
public IActionResult About()
{
return View();
}
}
/Home/Index
: Index()
Method কল হবে।/Home/About
: About()
Method কল হবে।Routing-এ Route Parameters ব্যবহার করে ডাইনামিক ডেটা পাস করা যায়। এটি Convention-based এবং Attribute Routing-এ উভয় ক্ষেত্রেই কাজ করে।
[Route("products/{id}")]
public IActionResult Details(int id)
{
// ডাটাবেজ থেকে প্রোডাক্টের তথ্য বের করুন
var product = _productService.GetProductById(id);
return View(product);
}
/products/5
5
Routing-এ প্যারামিটারগুলো Optional করা যায়, যা URL না থাকলেও কাজ করবে।
[Route("products/{id?}")]
public IActionResult Details(int? id)
{
if (id == null)
{
// ডিফল্ট ভিউ রিটার্ন করুন
return View("AllProducts");
}
return View();
}
Routing-এ Default Values সেট করা যায়, যা প্যারামিটার না থাকলে ব্যবহার করা হবে।
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
/
→ Controller: Home
, Action: Index
Routing ASP.NET Core-এ Middleware হিসাবে কাজ করে এবং এটি Startup.cs
-এ কনফিগার করতে হয়।
public void Configure(IApplicationBuilder app)
{
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
Routing এবং Controller Action ASP.NET Core-এ ব্যবহারকারীর রিকোয়েস্ট পরিচালনা করার একটি শক্তিশালী উপায়। এটি আপনার অ্যাপ্লিকেশনকে আরও ডাইনামিক, ফ্লেক্সিবল এবং ব্যবহারকারীর চাহিদা অনুযায়ী কাস্টমাইজ করার সুযোগ দেয়।
common.read_more